﻿using System;

namespace Nox.Amuse
{
    public enum Messages
    {
        /// <summary>
        /// A requested for the application exit
        /// </summary>
        ExitRequest,
        /// <summary>
        /// The application is about to exit
        /// </summary>
        Exiting,
        /// <summary>
        /// A test connection is being started
        /// </summary>
        StartTestConnection,
        /// <summary>
        /// A tab needs to be added
        /// </summary>
        TabAddRequest,
        /// <summary>
        /// A tab has requested that it be removed
        /// </summary>
        TabRemoveRequest,
        /// <summary>
        /// The current active tab has changed
        /// </summary>
        TabChanged,
        /// <summary>
        /// The main window of the application has become active
        /// </summary>
        MainWindowActivated,
        /// <summary>
        /// A ViewModel has instructed the View that contains it to close
        /// </summary>
        CloseDialog,
        /// <summary>
        /// The update checker has started checking for updates
        /// </summary>
        UpdateCheckStarted,
        /// <summary>
        /// The update checker has finished checking for updates
        /// </summary>
        UpdateCheckComplete,
        /// <summary>
        /// The update checker has found a new update
        /// </summary>
        UpdateAvalible,
        /// <summary>
        /// The update checker has made progress downloading the update
        /// </summary>
        UpdateDownloadProgress,
        /// <summary>
        /// The update checker has finished downloading the update
        /// </summary>
        UpdateDownloadComplete,
        /// <summary>
        /// The update checker has failed to download the update
        /// </summary>
        UpdateDownloadFailed,
        /// <summary>
        /// The update checker has stopped downloading the update at the user's request
        /// </summary>
        UpdateDownloadCancelled,
        /// <summary>
        /// Indicates a line was added in a TabViewModel's window
        /// </summary>
        LineAdded,
        /// <summary>
        /// Indicates a command was just sent to the server
        /// </summary>
        CommandSent
    }
}